package edu.zut.bailan.topicmenu.web.spring.controller;


import edu.zut.bailan.base.web.spring.controller.GenericTreeController;
import edu.zut.bailan.topicmenu.domain.TopicMenuGroup;
import edu.zut.bailan.topicmenu.service.TopicMenuGroupManager;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import com.alibaba.fastjson.JSON;

import javax.annotation.Resource;

@Controller
@RequestMapping("/menuGroup")
public class TopicMenuGroupController extends GenericTreeController<TopicMenuGroup, Long, TopicMenuGroupManager> {

    public static final Logger logger = LogManager.getLogger(TopicMenuGroupController.class.getName());

    TopicMenuGroupManager topicmenuGroupManager;

    @Resource
    public void setMenuGroupManager(TopicMenuGroupManager topicmenuGroupManager) {
        this.topicmenuGroupManager = topicmenuGroupManager;
        this.manager = this.topicmenuGroupManager;
        this.treeManager = this.manager;
    }

    @ResponseBody
    @RequestMapping("/findAll/{page}/{pageSize}")
    public String findAllUser(@PathVariable("page") int page, @PathVariable("pageSize") int pageSize) {
        Sort sort = Sort.by(Sort.Direction.DESC, "id");
        Pageable pageable = PageRequest.of(page, pageSize, sort);
        Page<TopicMenuGroup> list = topicmenuGroupManager.findAll(pageable);
        int number = list.getNumber();
        HashMap<String, Object> map = new HashMap<>();
        map.put("number", number);
        map.put("userList", list);
        //map集合转化为JSON字符串进行数据传输
        String res = JSON.toJSONString(map);
        return res;
    }
}